package com.mikao.service;

import com.mikao.dto.bo.DoFruitForm;
import com.mikao.dto.bo.DoTreeForm;
import com.mikao.dto.vo.*;

import java.util.List;

public interface IndexService {

    /**
     * 种植首页获取
     *
     * @param userId 用户ID
     * @return 封装类
     */
    BaseResult<PlantDto> index(Long userId);

    /**
     * 查看我的果树
     *
     * @param userId 用户ID
     * @return 封装类
     */
    BaseResult<List<MyTreeDto>> myTree(Long userId);

    /**
     * 我的果实
     *
     * @param userId ID
     * @return list
     */
    BaseResult<List<FruitDto>> getFruit(Long userId);

    /**
     * 我的钱包
     *
     * @param userId id
     * @return dto
     */
    BaseResult<WalletDto> wallet(Long userId);

    /**
     * 对树的操作
     *
     * @param doTreeForm 操作表单
     * @return 封装类
     */
    BaseResult doTree(DoTreeForm doTreeForm);

    /**
     * 对果子订单的操作
     *
     * @param userId      用户ID
     * @param doFruitForm 果子操作表单
     * @return 封装类
     */
    BaseResult doFruit(Long userId, DoFruitForm doFruitForm);

    /**
     * 大图获取我的果树数量
     *
     * @param userId 用户ID
     * @return 数量
     */
    BaseResult<Integer> myTreeCount(Long userId);
}
